Network search engine using objective and subjective user favorites for seraching

ABSTRACT

An Internet infrastructure that supports search operations that are restricted by user favorite lists, related user metadata, and user trends that are based on client-stored user favorite behavior. The Internet infrastructure contains a search engine server coupled to a plurality of web browsers resident on client devices that contain user/favorite lists and metadata. The search engine supports delivery of search result web links to the client device based upon a search string, favorite list, and related metadata. The search engine server gathers favorite lists and related metadata from the plurality of web browsers, anonymously and with user permission. The search engine server stores the gathered favorite lists and related metadata in a database that is associated with the search engine server, and delivers search results based upon the search string by putting restrictions on search results based upon stored data in the database.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/495,813, filed Jun. 13, 2012, entitled NETWORK SEARCH ENGINE USINGOBJECTIVE AND SUBJECTIVE USER FAVORITES FOR SEARCHING (Atty. Dkt. No.RPXC-32930), which is a continuation of U.S. patent application Ser. No.12/415,692, filed Mar. 31, 2009, entitled NETWORK SEARCH ENGINEUTILIZING CLIENT BROWSER FAVORITES, now U.S. Pat. No. 8,250,054, issuedAug. 21, 2012, which claims benefit of U.S. Provisional Application No.61/052,878, filed May 13, 2008, entitled NETWORK SEARCH ENGINE UTILIZINGCLIENT BROWSER FAVORITES, the specifications of which are incorporatedby reference herein in their entirety.

TECHNICAL FIELD

The present invention relates generally to Internetcomputers/infrastructures; and, more particularly, to search engines.

BACKGROUND

Search engines are common gateways to the world of Internet. Users thatare unable to find what they want on the Internet often use searchengines to identify a web link that is helpful. The users may search theInternet with a wide variety of interests such as business, engineeringand scientific research, as well as home-based general/personalinterests. Search engines usually select web links based upon a searchkeyword (or, search string) and rank order selected web links to theuser based on relative popularity of the various web links.

Users typically have certain expectations when they are searching forweb links. A user might be looking for specific information, a specificorganization or company web links, etc. Often, what they get whenlooking for specific information or organizations are vaguely relatedweb links containing information unrelated to their expectations.

A list of popular websites having words in web link title that arerelated to a user's search string or keywords often pops up at the topof the search results list. Yet, these top search results often have norelation to the information user is looking for. Pages after pages ofsearch results can be scanned where the user gets the same unwantedsearch results. Often, a user has a few areas of serious interests thatthe user is most often searching or interested in. Unaware of user'sinterests, the search engine delivers web links that are vaguelyassociated with user's sphere of interest.

For example, a user may enter a search string ‘top bicycle riders’looking for a list top ranked bicycle riders in world. The search engineis unaware of user's sphere of interest (that is, the user lives inEurope, likes bicycle racing, and that the user is looking for websources related to top-ranked competitive bicycle riders in the world).By being unaware, the search engine delivers web links of top bicyclemagazines, bicycle stores, bicycle resellers and renters, bicycleprices, bicycle touring in a remote holiday resort in the Caribbean,etc. Unable to find what he/she is looking for, the user clicks on‘next’ button again and again, getting same unsatisfying results. A fewpages into the list of search results, the focus of search resultbecomes so distant that the user abandons the search and either enters anew keyword search string or gives up on the search and seeks otheralternatives, hoping to have better luck using another approach.

These and other limitations and deficiencies associated with the relatedart may be more fully appreciated by those skilled in the art aftercomparing such related art with various aspects of the present inventionas set forth herein with reference to the figures.

SUMMARY

The present invention is directed to apparatus and methods of operationthat are further described in the following Brief Description of theDrawings, the Detailed Description of the Invention, and the claims.Other features and advantages of the present invention will becomeapparent from the following detailed description of the invention madewith reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic block diagram illustrating an Internetinfrastructure containing a plurality of client devices and a webbrowser accessible search engine server, wherein the search engineserver delivers web links based upon the user's favorite lists andrelated metadata associated with the user;

FIG. 2 is a schematic block diagram illustrating components of thesearch engine server constructed in accordance with the embodiment ofFIG. 1;

FIG. 3 is a flow diagram illustrating functionality of the search engineserver of FIG. 1;

FIGS. 4-5 illustrate a flow diagram showing the functionality of thesearch engine server of FIG. 1 upon delivering a search engine server'swebpage, in one embodiment;

FIG. 6 is a flow diagram illustrating the functionality of the searchengine server of FIG. 1 wherein the search engine server gathers andprocesses favorite lists and related metadata, and delivers web linksbased upon this data;

FIG. 7 is an exemplary schematic diagram illustrating snap shot ofsearch interface webpage of the search engine server of FIG. 1, whereinthe search interface webpage allows user to send favorite list andrelated metadata, and provides user options to search within favoritesand user search trends; and

FIG. 8 is an exemplary schematic diagram illustrating a snap shot of afirst search result page based upon a search string, favorite lists andrelated metadata.

DETAILED DESCRIPTION

FIG. 1 is a schematic block diagram illustrating an Internetinfrastructure 105. The infrastructure 105 contains a plurality ofclient devices 157 and 159 and at least one web browser accessiblesearch engine server 169. The search engine server 169 delivers searchresult sources and/or web links based upon one or more favorite listsand sometimes also using related metadata 153 associated with the useror many users, such as user profiles, historic search patterns, computerinteraction monitoring, computer location, time of day (is it work timeor play time), etc. Specifically, the search engine server 169 collectsthe favorite lists and related metadata from web browsers 151 located onthe plurality of client devices 157 thru 159, and stores the data in aworld's favorite database 181. Based upon this information and a searchstring, the search engine server 169 reorders a resulting search resultlist, constructs a user profile for each of the users, and computestrends and based upon which delivers a list of web links andadvertisements.

In other words, in one embodiment, the search engine server 169 collectsthe favorite lists and related metadata 153 from each of the pluralityof client devices 157-159 during its interaction with the client device157 or 159, processes this information appropriately, and uses thisinformation to deliver each of the search result pages and appropriatelyselect (or restrict) the search results and/or advertisements inaccordance with the: (a) the favorite lists and related metadata 153;(b) the user search string; (c) a user profile; and/or (d) trends basedupon user behavior or historic favorite selections. In anotherembodiment, the favorites data that is used by the search engine serveror the clients to process, select, reorder, and refine the searchresults lists may simply be the favorites or use history of the singlecomputer by the single user. Or, the profile and metadata used may bemetadata associated with a machine, and not one particular user, as inthe case of work environments or educational systems. The methods forcollecting such favorite lists and related metadata 153 from theplurality of client devices 157 thru 159 can vary. One approach involvesthe delivery of a search interface webpage (for more details refer tothe detailed description with reference to the FIG. 7) to the client.When received, the web page can be displayed as a pop-up window or someother interface, during which time the search engine server 169 requeststhat the user of the client device 157 or 159 allow the server 169 toupload, access, or copy their favorite lists and any applicable relatedmetadata 153. The search string may be matched with web contents ineither crawl webpage database 179 and/or just within the world'sfavorite database 181. The crawl webpage database 179 contains acollection or pointers to other servers/storage that collectivelycontain all of the web pages hosted by a plurality of web hostingservers (not shown), which are obtained during crawling from webpage towebpage.

A search result page may contain, in part or full, web links selected onthe basis of: (a) matching words of search string with that of webpagecontents only from world's favorite database 181; (b) matching words ofsearch string with that of webpage contents from crawl webpage database179; (c) the user profile; (d) trends based on the user and/or globalfavorite behavior; and/or (e) matching words of search string with thatof webpage contents only from an advertisement database. Each of thesearch result list thus obtained from (a) through (e) are sorted on thebasis of popularity, or some other sorting criteria. All of the weblinks thus selected from (a) through (e), and sorted, may be deliveredseparately, each of (a) through (e) in their own search result page ormay be mixed together irrespective of source to form fewer search resultlists and delivered in one or more columns or some other format to theuser. In addition, the user may be provided with some flexibility indeciding which of the combinations of (a) through (e) is delivered in asearch result page.

The favorite-list-related metadata may include various data like ‘timesvisited’, ‘date added’ and ‘ active duration of interaction with thesite’. A customer profile may be developed immediately upon the server'sreception of a favorite list and related metadata 153 from the webbrowser 151 of client device 157 or 159. The user profile may also bedeveloped using the favorite list and related metadata 153 obtainedduring delivery by the search interface webpage. By using one or morefavorite lists and related metadata 153, the search engine server 169 isable to further develop the user profile over time. The useful favoritelist related metadata information may contain: (a) times at which webpages in the favorite lists visited; (b) time and date at which awebpage is added to the favorites list; and (c) active duration forwhich a webpage in the favorite lists is interacted with.

For example, a user may have most of the web links among the favoritelist in the area of science, some other in the area of news and few morepersonal (such as mail related web sites, banking web sites) etc. Inaddition, the favorite list related metadata may contain informationthat indicates that the user mostly uses Internet for browsing between 6pm to 8 pm, and visits science related web links 40% of the time andnews related web sites 50% of the time from Monday through Friday. Thesearch engine server 169, in this case, is able to construct a userprofile that includes all of the user browsing behavior as related tothe favorite list and related metadata 153, such as: (a) User's Area ofInterests: Science, News and Personal; (b) Visiting Hours for Science: 6pm to 8 pm, Most Viewed Web Site: ‘CXY.com’, Percentage of TimeDedicated to ‘CXY.com’: 30% etc. From this user profile, the searchengine server 169 may determine that if the search string receivedduring a search is related to the area of science, the user is likely tobe interested in many of the science related web links associated withtheir profile, and the server will deliver web links or search resultsbased on that assumption, either separately or mixed with otherlists/sources mentioned above. In other cases, the useful favorite listwill contain more complex statistics or specific content preferences ofthe user (i.e., the user often visits medical sites, visits CNN.com 80%of the time, likes YouTube, etc.). It may even contain user profile infoprovided by the user, like the user is a PhD in physics, has two teenagechildren, is married, drives a BMW, lives in Germany, and likes totravel on business.

The various data and trends that are revealed using favoritedata/monitoring/tracking/behavior allows the search engine server 169not just to find better search result content, but allows the server orclient to better reorder the search result list, based upon, forexample, recently added search interests and high-visit volumepreferences. In fact, certain profile or metadata, like the most visitedsites, the most viewed content, the most recent interests, etc., can beweighed higher that other data in the metadata or user profile files. Inessence, the search engine server 169 may push some of these recentlyadded and highly-visited web links or content areas to the top of thelist. In addition, the search engine server 169 processes the datastored in the world's favorite database 181 to determine search hitprobability with favorite weighting factors (a modified natural languagesearch). The favorite weighting factor is determined based upon a numberof users tagging a webpage as favorite or may be set on another one ormore other parameters, like volume of hits to a site and/or amount oftime spent per user on the site (i.e., stickiness of the site). That is,the search engine server 169 may determine some subjective or objectivepopularity of each of the web pages within the world's favorite database181 and assign a favorite weighting factor to it to filter more‘popular’ sites higher in the search result or web site lists providedto the user. When a search string is received from the web browser 151of a client device 157 or 159, the search engine server 169 reorderssearch results based upon the favorite weighting factor.

The Internet infrastructure 105 illustrated in FIG. 1 contains thesearch engine server 169 communicatively coupled to the plurality ofclient devices 157 thru 159. The clients are coupled to the server 169via access points (APs) 121, 122 and 123, various ISPNs (InternetService Provider's Networks) 111, 112, and 113, and an Internet backbone107. Other network configurations are possible. The client devices 157thru 159 contain search support modules 195 that assist in providingpopup or windowpane as an interface that allows user to submit favoritelists to the search engine server 169. In FIG. 1, the web browser 151,metadata 153, and module 195 are shown singularly in the figure,however, each client device most likely has its own copy of metadata,browser, and modules, albeit they may be identical or similar in somecases to the same data/programs stored on other clients.

The search engine server 169 contains a favorite list gathering module171 that collects various favorite lists and related metadata 153 andstores this data in the world's favorite database 181. When searchengine server 169 begins interaction with the web browser 151 on one ormore clients, such as when the search interface webpage (that containsoptions to upload favorite list and related metadata 153 to the searchengine server 169) is delivered, the search support module 195 interactswith the user. Then, upon clicking of a ‘send favorite list’ button bythe user, the favorite list gathering module 171 receives the requisitefavorite list(s) and related metadata 153 (if any), processes it asneeded, and stores it in world's favorite database 181 for furtherprocessing during search operations. A user profiling module 173 createsa user profile as mentioned in above paragraphs soon after the favoritelist gathering module 171 receives the favorite lists and relatedmetadata 153. A trend estimation module 175 retrieves stored informationfrom the world's favorite database 181 and processes it to create oridentify certain Internet trends such as recently added websites andhigh visit volume preferences. A favorite list based search resultsorting module 177 orders web links, selected on the basis of the searchstring, by popularity or some other criteria before the search resultlists or list of web pages is provided our for display on a clientdevice. This module 177 may also reorder the web links selected fromcrawl webpage database 179 based upon information processed from world'sfavorite database 181 or other favorite lists or user profiles.

The search interface webpage that is delivered to the user as a firstpage upon the first search request from the web browser 151 willfacilitate the user to: (a) search within world's favorite database 181alone; (b) search within crawl webpage database 179 alone; (c) search inboth (or more) of these sources; (d) search based upon trends based onfavorite behavior alone; and/or (e) any of the combinations of (a)through (e). Thus, the user may search only within the world's favoritesby providing a search string, or the user may search within bothdatabase 179 and within world's favorites 181 (in which case, at leasttwo search result columns of web links are often delivered, one foreach). In other operations, the user may allow incorporation oftrend-based web links within the search results so that the Internet oruser-specific trends are favored when determining and/or ordering searchresults for presentation to the user. In addition, a ‘send favoritelist’ button allows either a windowpane or a popup window to appear,containing the web browser's favorite lists. The user is able to remove,edit, or add web links to the list before sending them to the searchengine server 169 or otherwise authorizing them for server access orcopying. The user is also provided with a helpful tip (sometimes legallyrequired) that lets the user know the use and privacy terms with whichthe favorite list and related metadata 153 is gathered by the searchserver engine 169. For example, the helpful tip may be [0027] “To helpus improve our site can you please provide your favorite list? You mayedit, include, or delete any web link from the favorite list beforesending it to us. We do not invade your privacy; keep records of any ofyour data including IP address and name.”

As an example, a user may enter ‘top bicycle riders’ as a search stringand choose the ‘search within favorites’ option to search for web linksassociated with various statistically significant favorite lists aroundthe world. Also, the user may edit or delete web links within thefavorite list and click on ‘send favorite list and search’. Then, thesearch engine server 169 searches for web links only within the world'sfavorite database 181 and delivers search results in one or more of thecolumns. Another column may have results derived from the crawl webpagedatabase 179. Still another column may have advertisements tailored byusing a customer profile, derived from one or more of the favorite listof the user, user metadata, user profiles on the client, user usagepatterns, etc.

It is important to note that FIG. 1 illustrates only two client machinesand one server for each of illustration, whereas most networks,intranet, and Internet contain thousands, millions, and maybe evenbillions of computers, clients, devices, and servers. And, clientdevices need not be personal computers (PCs), desktops, or laptops. Theclient devices can be personal digital assistants (PDAs), cell phones,smart phones, iPods, industrial equipment, automotive embeddedcontrollers, digital TV processors, set top boxes, satellites,appliances, or any other kind of network device that connects to anetwork.

FIG. 2 is a schematic block diagram illustrating components of thesearch engine server constructed in accordance with the embodiment ofFIG. 1. The search engine server circuitry 207 may be, in part or infull, incorporated into any computing device that is capable of servingas an Internet based server. The search engine server circuitry 207generally includes processing circuitry 209, local storage 217, managerinterfaces 249, and network interfaces 241. These components arecommunicatively coupled to one another via one or more of a system bus,dedicated communication pathways, or other direct or indirectcommunication pathways. The processing circuitry 209 may be, in variousembodiments, a microprocessor, central processing unit (CPU), a digitalsignal processor, a graphics processor, a state machine, an applicationspecific integrated circuit, a field programming gate array,combinations thereof, or other processing circuitry.

The network interfaces 241 contain wired, optical, and/or wirelesspacket switched interfaces 245 and may also contain built-in or anindependent interface processing circuitry 243 (another CPU or likedevice dedicated to processing input/output information from thecircuitry 207). The network interfaces 241 allow the search engineserver 207 to communicate with client devices such as 261 and to deliversearch result pages containing search result web links. The managerinterfaces 249 may include one or more display and keypad interfaces.These manager interfaces 249 allow the user or an IT expert at thesearch engine server 207 to control aspects of the server system. Theclient device 261 illustrated (only one client device is illustrated forease of illustration) is communicatively coupled to the search engineserver 207 via the Internet 255. In other embodiments, the Internet 255may be replaced with an intranet, a local area network, a wide areanetwork, a wireless connection, a proprietary network, or othernetworks.

Local storage 217 may be any type of random access memory (RAM),read-only memory (ROM), flash memory, electrically erasable memory,optical storage, magnetic storage, a disk drive or array, an opticaldrive, any combination thereof, or another type of memory that isoperable to store computer instructions and data. The local storage 217includes a favorite list gathering module 223, search result sortingmodule 225, favorite list based search result sorting module 227, userprofiling module 229, trend estimation module 231, crawl webpagedatabase 233, and a world's favorite database 235 to facilitate a user'ssearch, in accordance with the embodiments taught herein.

The favorite list-gathering module 223 in FIG. 2 gathers favorite listsand related metadata 253 from web browsers, such as browser 251 or fromother users or user devices, and stores this data in the world'sfavorite database 235. The gathering of favorite list and relatedmetadata 253 from a plurality of global or wide area sources occursduring search engine server's 207 interaction with the many web browsers251 out over the Internet that are associated with the client deviceslike client device 261. For example, a search interface webpage maycontain options to upload the local favorite list and related metadata253 to the search engine server 207 when prompted or periodically, andprovide the user an option to edit, delete, protect, deny, and/or send,in whole or in part, the favorite list and related metadata 253. Oncereceived, the favorite list gathering module 223 stores the favoritelist and related metadata 253 in the world's favorite database 235 alongwith other users favorite list information and may compile globaldata/statistics related thereto for further processing.

The favorite list gathering module 223, once the favorite list andrelated metadata 253 is received, forwards data to the user profilingmodule 229, or the module 229 may independently query for data over theInternet on a different cycle than the database 235. The user-profilingmodule 229 then creates a user profile from data received from the useror client device 261. By using the user's favorite list related metadata253 or other local data associated with the user, the search engineserver 207 is be able to develop a user profile by using: (a) the timesat which web pages in the favorite lists visited; (b) the time and dateat which a webpage is added to the favorites list; (c) the activeduration for which a webpage in the favorite lists is interacted with,(d) the type of content desired; (e) the geographic preferences of thecontent; (f) language limitations of the content, and/or other relatedmetadata. The trend estimation module 231 retrieves stored informationfrom the world's favorite database 235 and processes it to create trendssuch as recently-added websites and high visit volume preferences andother possible statistics related to favorite data over many users orsources. The favorite list based search result sorting module 227 orderssearch result web links based on popularity or some other criteria. Thesearch result web links are selected based on certain correlations tothe search string and/or user profiles/favorites/metadata, bypopularity. The search result-sorting module 225 may reorder the weblinks selected from the crawl webpage database 233 based uponinformation processed from world's favorite database 181 or other localor global favorites information.

In other embodiments, the search engine server 207 of FIG. 2 may includefewer or more components than are illustrated as well as lesser orfurther functionality. In other words, the illustrated search engineserver is meant to merely offer one example of possible functionalityand construction in accordance with the present invention.

FIG. 3 is a flow diagram illustrating functionality of the search engineserver of FIG. 1. The functionality 305 begins at a block/step 307,where the search engine server requests that the user of the clientdevice provide favorite list and/or metadata to the server. This part ofthe functionality may occur during any previous and/or currentinteraction of the search engine server with the web browser of theclient device, specifically, during delivery of search interface webpages for various searches. In one embodiment, the search interfacewebpage is the first webpage that is delivered to the web browser toinitiate a new search. In the search interface webpage, the searchengine server provides an option to upload the user's favorite list(s)on to an editable window pane or popup window and allows the user toedit, remove, deselect, protect, etc., various info therein, and thensend the appropriate favorite list information along with a searchstring to the server. In other embodiments, the favorite lists mayalready have been collected and be current with the user already,whereby the step of collecting favorites can be skipped, unless favoritedata is new on the client device or stale/purged at the server side.

At a next block/step 309, the search engine server receives, withoptional user permission, the favorite list and related metadata, alongwith the user search string (if a new search is to be initiated). At anext block/step 311, the search engine server stores the favorite listand any related data or metadata in a world's favorite database and alsoconstructs user profiles using the collected information from the clientdevice or other user sources. To construct a user profile, the searchengine server uses favorite list, client data, use patterns, user input,user data, and the related client metadata such as, for example: (a)percentages of categories of web links; (b) the times at which web pagesin the favorite lists visited; (c) the time and date at which a webpageis added to the favorites list; and/or (d) the active duration for whicha webpage in the favorite lists is interacted with, among other relatedmetadata. In addition, before delivery of a search result page, thesearch engine server processes stored data in the world's favoritedatabase to create trends and other statistics or useful information,such as recently added websites, websites that are visited for a longtime or are “sticky”, and high visit volume preferences for the user.The user may choose to search, using a new search string or the samesearch string, within the world's favorite database, within the crawlwebpage database, and/or search using trends in an attempt to findsearch result information to suit user needs.

At a next block/step 313, the search engine server selects web linksfrom the crawl webpage database based upon the search string and sortsthem on the basis of popularity ranking and/or world's favorite ranking.The world's favorite ranking may be decided by using favorite weightingfactors that determines how many users select a webpage as theirfavorite. At a next block/step 315, the search engine server selects weblinks from the world's favorite database that are based upon orcorrelate to the search string, and the step 315 sorts these web linkson the basis of popularity ranking and/or world's favorite ranking foran ordered presentation to a user. The process of block/step 315 isperformed only if the user chooses to search within the world's favoritedatabase. At a final block 317, the search engine server delivers afirst search result page containing one or more of: (a) web links fromworld's favorite database; (b) web links from crawl webpage database;(c) web links based upon user profile (may be advertisements); and/or(d) web links based upon trends (based on favorite behavior).

In another embodiment similar in scope to FIG. 3, the search result listpresented to the user may be selected by processing at least three ofthe following sources of data: user profile data, user historic searchpatterns, user-client interaction data, client location, the time ofday, the search string, user metadata, and user favorites data.

FIG. 4 is a flow diagram illustrating the functionality of the searchengine server of FIG. 1, upon delivering a search engine server's webpage to the client device in one embodiment. The functionality 405 ofthe search engine server, in this embodiment, begins at a block/step409, where a search interface webpage (refer to FIG. 7 for detaileddescription of a typical search interface webpage) or subsequent searchengine server's webpage is delivered. The search interface webpage mayinitiate a new search, and using a new search string typically allowsthe user to enter and process a search string and upload favorite listand related metadata. Similarly, the subsequent search result pages(search engine server's webpage) contain provisions to enter a new ormodified search string, as well as ‘next’ button and ‘prey’ (or‘previous’) button to cycle through pages of search results.

At a next decision block/step 421, the search engine server determinesif ‘prey’ button is clicked. If yes, at a next block/step 455, thesearch engine server delivers an exact previous search result page, andthen waits for new inputs from the user of the client device. In case ofthe search interface webpage, the ‘prey’ button is often not availableas there is no previous data to go back to. If ‘prey’ button is notclicked at the decision block/step 421, then, at a next decisionblock/step 423, the search engine server determines if ‘next’ button isclicked. If yes, at a next block/step 457, the search engine serverdelivers a subsequent search result page and waits for new inputs fromthe user of the client device. In case of the search interface webpage,the ‘next’ button is often not available as there may be no searchresults that are compiled and presented to the client device at thistime. It is also important to note that the order of decision boxes inFIG. 4 may be changed in order and priority.

If ‘next’ button is not clicked at the decision block/step 423, then, ata next decision block/step 425, the search engine server determines ifthe ‘search within favorites’ radio button is on. If not, the searchengine server determines, at a next decision block/step 427, if ‘search’button is clicked. If yes at the decision block/step 427, then thesearch engine server begins the search processing for a new searchcriteria, based upon a search string via connector ‘B’ (refer to theFIG. 5 for continuation of the method flow) to process search resultswithout using favorites processing. If ‘search within favorites’ radiobutton is clicked at the decision block/step 425, then, at a nextdecision block/step 429, the search engine server determines if ‘search’button is clicked. If yes at the decision block/step 429, then thesearch engine server begins processing of a new search criteria usingfavorites data to refine search results based upon a search string andfavorites via connector ‘A’ (refer to the FIG. 5 for continuation of themethod steps).

FIG. 5 is a flow diagram illustrating functionality of the search engineserver of FIG. 1, continued from two connectors A and B of FIG. 4. Thecontinued functionality 505 of FIG. 4 via connectors ‘A’ begins at ablock 461 with the search engine server receiving a search string alongwith favorite list and metadata from client device's web browser. At anext block/step 463, the search engine server matches words of thesearch string with that of contents of the web pages in the world'sfavorite database. Then, at a next block/step 465, the search engineserver selects web links from the world's favorite database, on thebasis of closeness in search string match. At a next block/step 467, thesearch engine server sorts the selected web links based upon closenessin match and/or popularity and/or world's favorite ranking. The world'sfavorite ranking is decided based upon favorite weighting factor thatdetermines how many users select a webpage as their favorite. At a nextblock/step 469, the search engine server delivers a search result pagecontaining a first few web links sorted on the basis of: (a) closenessin match; (b) popularity rank; and/or (c) world's favorite rank. Thesecombinations may be displayed separately in multiple columns or in asingle column.

The continued functionality 505 of FIG. 4 via connector ‘B’ begins at ablock/step 481 with the search engine server receiving a search stringalong with optional favorite list and metadata from client device's webbrowser. The favorite list and metadata may be optional in these steps,as this processing of steps 481-489 may not need any favorites data ormetadata to process. At a next block/step 483, the search engine servermatches words of the search string with that of contents of the webpages in the crawl webpage database (not the favorites web pagedatabase). Then, at a next block/step 485, the search engine serverselects web links from the crawl webpage database, on the basis ofcloseness in match to the search string or other user search criteria ordata. At a next block/step 487, the search engine server sorts theselected web links based upon closeness in match and/or Internetpopularity or some other criteria. At a next block/step 489, the searchengine server delivers a search result page containing a first few weblinks sorted on the basis of: (a) closeness in match; (b) popularityrank; and/or (c) world's favorite rank. These combinations may bedisplayed separately in multiple columns or in a single column.

Note that the functionality of ‘search using trends’ and also that ofuser specifically sending or electing, in whole or in part, not to sendthe favorite list and metadata to the search engine server are notspecifically illustrated in method of FIGS. 4 and 5, as these conceptsare taught elsewhere herein. But in other embodiments, suchfunctionality is clearly shown via the snap shot of FIG. 7, as well asother variations/embodiments herein (such as displaying mixing of searchresults from various databases), all of which are possible.

FIG. 6 is a flow diagram illustrating the functionality of the searchengine server of FIG. 1, wherein the search engine server gathers andprocesses favorite lists and related metadata and delivers search resultweb links based upon this data. The functionality 605 of gathering andprocessing favorite lists and related metadata to restrict and modifysearch result lists begins at a block/step 607, where the search engineserver requests favorite list(s) and related metadata from web browserson a plurality of client devices during their interaction with thesearch engine server. The search engine server may request delivery oraccess to the favorite lists and related metadata during delivery of anysearch engine server's web page, on any interval or event, on a specifictriggered occasion for collecting such favorite list(s) and relatedmetadata from the plurality of client devices, or some other method thatmay or may not include delivery of a search interface webpage (refer tothe description of FIG. 7). During the delivery of a search interfaceweb page the search engine server requests that the user of the clientdevice provide to the server their favorite list(s) and/or relatedmetadata. The search interface webpage contains a window pane orprovides a popup window that is loaded with the user's favorite listsand allows the user to add, edit, remove, delete, protect, and sendcertain portions of the favorite lists along with a search string tostart a search operation. Also, in other embodiment, the interface,timing, and method of processing, providing, and updating favorite listsand metadata can be completely different from the process for inputtingsearch strings and obtaining search result information.

Then, at a next block/step 609, the search engine server stores gatheredfavorite list or lists and related metadata in a world's favoritedatabase in an anonymous manner in a preferred embodiment. If anonymous,the user is informed during collecting of the favorite list and relatedmetadata that the collection is anonymous and no private data such as IPaddress and name(s) are collected. At a next block/step 611, the searchengine server processes the favorite list and related data with otherstatistical data. One of the processes is that of creating a userprofile from the recently collected favorite list and related metadata,where the user profile is used to reorder the search result list andpossibly reorder, select, or reprioritize advertisements to cater to theneeds of the user. Another of the processing steps is that ofidentifying user trends or creating trends data based upon the user'sfavorite(s) access/use/behavior. These trends may be used to reorder thesearch result list and provide more targeted or relevant advertisementsfor the user(s). At a next block/step 613, the search engine servertailors search results using a formula (that gives certain weight toeach of the factors that influence reordering of the search result list,such as user profile, search within favorites, and search-using trends)that incorporates processed favorite list and related metadata and otherstatistical information derived therefrom or separate therefrom.

At a next block/step 615, the search engine server processes “SearchWithin Favorites” button input (if turned on) to search only fromworld's favorite database and “Search Using Trends” button input (ifturned on) to allow recently added and high visit volume preferences tocome to the top of the search result list. This processing occursimmediately after collecting favorite list and related metadata, and theprocessing includes selection and sorting from the world's favoritedatabase alone and/or sorting on the basis of trends. At a nextblock/step 617 and for one embodiment, the search engine server deliversa search result page based upon a user chosen criteria for each of thesearch string, favorite list, and related metadata received from theplurality of web browsers. Specifically, The search engine serverdelivers a search result page based upon a user chosen criteria, whichincludes: (a) search within favorites; (b) search all of the web; (c)combinations of (a) and (b).

FIG. 7 is an exemplary schematic diagram illustrating s snap shot of ssearch interface web page 705 of the search engine server of FIG. 1,wherein the search interface webpage 705 allows a user to send afavorite list and related metadata to the server and provides useroptions to search within certain favorites, and wherein the system cansearch using trends. Specifically, the exemplary snap shot illustratedshows the search engine server's search interface webpage 705 deliveredto web browser 795 of the client device to facilitate user's search andto send favorite list and related metadata. The search engine server'ssearch interface webpage 705 may contain a page title such as ‘SearchEngine's web page (www.Search_Engine.com)’ 721, and a ‘search’ button737. Along with ‘search’ button 737, the search interface webpage 705also contains ‘search within favorites’ option 729 and ‘search usingtrends’ option 733 via radio buttons or some other input mechanism thathelp restrict the search, in accordance with the embodiments taughtherein. The user is able to restrict a search to only within world'sfavorite database and/or search using trends based upon favoritebehavior by using these radio buttons 729 and 733. In addition, a textmessage, such as ‘Enter Search String:’ 723 and text box 727 areprovided to facilitate user search input and operations. The user mayenter the search string in the text box 727, such as the text ‘TopBicycle Riders’ 725, make appropriate choices on the interface 705 andclick on the ‘search’ button 737 to initiate a new or refined search.

An additional favorite list windowpane is provided for the user to sendfavorite list and related metadata. The windowpane that is illustratedin FIG. 7 may also be offered in a popup window, in another embodiment.The windowpane loads up favorite list data from the web browserautomatically, as illustrated in FIG. 7. For example, the windowpane maycontain a title such as “Your Favorite List” 747, followed by a list ofweb links or favorite data, such as 761 through 763. The windowpane alsohas button to edit and delete, ‘Edit’ 743 and ‘Delete’ 745 and possibleselect other operations for the feedback data that is presented. Inanother embodiment, a fully functional word processing type interfacemay be provided to the user in window 747. Using the buttons 743 and745, etc., the user can add additional web links or favorites data tothe list, delete certain web links from the list, edit some of thelinks, etc. Also, a ‘Send Favorite List and Search’ 741 button allowsthe user to send favorite list and initiate a new search (based on thesearch string in the text box 727) at the same time as updating favoriteinformation and metadata. A helping text tip within the window pane(such as “Help: Select Web Link that you want to edit or delete andpress corresponding buttons above” 749) may be provided to help user tounderstand how to edit and send favorite list and related metadata andhow this data may be used by the system.

In addition, a helpful note may be provided in FIG. 7, such as: [0052]“Note: This Search Engine also searches within World's Favorite Lists,if chosen. Trend button allows recently added and high visit volumepreferences to come to the top of the Search List. To help us improveour site can you please provide your favorite list? We do not invadeyour privacy, keep records of any of your data including IP address andname, and we collect data anonymously.”

The note 793 helps a user to understand that the data is collectedanonymously to facilitate a better search, in cases where the privacypolicy supports anonymity.

FIG. 8 is an exemplary schematic diagram illustrating a snap shot of afirst search result page 805 that is provided based upon a searchperformed using a search string, favorite lists and related metadata astaught herein. Specifically, the exemplary snap shot illustrated in FIG.8 shows the first search result page 805 delivered to the web browser895 of a client device to facilitate user search operations. The firstsearch result page 805 may contain a page title such as ‘Search Engine'sweb page (www.Search_Engine.com)’ 821, and a ‘search’ button 837. Thefirst search result page 805 also contains a ‘search within favorites’radio button 829 and a ‘search using trends’ radio button 833 that helprestrict/refine the search. The user is able to restrict a search toonly within world's favorite database and/or a search using trends thatare derived based upon user favorite behavior via these radio buttons829 and 833. A text such as ‘Enter Search String:’ 823 and text box 827are provided to facilitate user search input and interfacing. The usermay enter the search string in the text box 827, such as ‘Top BicycleRiders’ 825, make appropriate choices of options in FIG. 8 and click on‘search’ button 837 to initiate a new search. The first search resultpage 805 also contains the ‘prey’ button 885 and ‘next’ button 889 toaccess prior displayed search result pages and any subsequent searchresult pages, respectively. In addition, a helpful note such as note 893can be displayed on the monitor/screen of a client device and help theuser to obtain search information like the following text: [0055] “Note:This Search Engine also searches within World's Favorite Lists, ifchosen. Trend button allows recently added and high visit volumepreferences to come to the top of the Search List.”

Also, the first search result page 805 may contain, in various columnsand window panes, search result web links selected on the basis of: (a)matching words of search string with that of webpage contents only fromworld's favorite database; (b) matching words of search string with thatof webpage contents from crawl webpage database; (c) user profile data;(d) trends based on favorite(s) behavior/data; and/or (e) matching wordsof search string with that of webpage contents only from anadvertisement database. All of the web links selected in this manner toform columns or sections (a) through (e) in the display window may bedelivered separately in each search result page or may be mixed in somemanner to form fewer lists of web links that can be delivered in fewercolumns. The first search result page 805 illustrated in the exemplarysnap shot of FIG. 8 shows two columns, namely, ‘Search Results’ 841 and‘Search Results Within World's Favorites’ 843, each containing searchresult web links selected on the basis of search string ‘Top BicycleRiders’ 825 from crawl webpage database and world's favorite database,respectively. The two columns illustrated in FIG. 8 show web linksnumbered 1 through 6 as web links 851 through 856 and web links 861through 866, as organized in the columns ‘Search Results’ 841 and‘Search Results Within World's Favorites’ 843, respectively.

The terms “circuit” and “circuitry” as used herein may refer to anindependent circuit or to a portion of a multifunctional circuit thatperforms multiple underlying functions. For example, depending on theembodiment, processing circuitry may be implemented as a single chipprocessor or as a plurality of processing chips (e.g., a multi-coredevice). Likewise, a first circuit and a second circuit may be combinedin one embodiment into a single circuit or, in another embodiment,operate independently perhaps in separate chips. The term “chip,” asused herein, refers to an integrated circuit. Circuits and circuitry maycomprise general or specific purpose hardware, or may comprise suchhardware and associated software such as firmware or object code.

As one of ordinary skill in the art will appreciate, the terms “operablycoupled” and “communicatively coupled,” as may be used herein, includedirect coupling and indirect coupling via another component, element,circuit, or module where, for indirect coupling, the interveningcomponent, element, circuit, or module may or may not modify theinformation of a signal and may adjust its current level, voltage level,and/or power level. As one of ordinary skill in the art will alsoappreciate, inferred coupling (i.e., where one element is coupled toanother element by inference) includes direct and indirect couplingbetween two elements in the same manner as “operably coupled” and“communicatively coupled.”

The present invention has also been described above with the aid ofmethod steps illustrating the performance of specified functions andrelationships thereof. The boundaries and sequence of these functionalbuilding blocks, and method steps, and order of these blocks/steps, havebeen arbitrarily defined herein for convenience of description.Alternate boundaries, orders, and sequences can be defined so long asthe specified functions and relationships are appropriately performed.Any such alternate boundaries or sequences are thus within the scope andspirit of the claimed invention.

The present invention has been described above with the aid offunctional building blocks illustrating the performance of certainsignificant functions. The boundaries of these functional buildingblocks have been arbitrarily defined for convenience of description.Alternate boundaries could be defined as long as any requisite orsignificant functions of a specific embodiment are appropriatelyperformed in some manner by some structure/method. Similarly, flowdiagram blocks may also have been arbitrarily defined herein toillustrate certain significant functionality. To the extent used, theflow diagram block boundaries and sequence could have been definedotherwise and still perform the certain significant functionality. Suchalternate definitions of both functional building blocks and flowdiagram blocks and sequences are thus within the scope and spirit of theclaimed invention.

One of average skill in the art will also recognize that the functionalbuilding blocks, and other illustrative blocks, modules and componentsherein can be implemented as illustrated by discrete components,application specific integrated circuits, processors executingappropriate software, software modules, and the like, or any combinationthereof.

Moreover, although described in detail for purposes of clarity andunderstanding by way of the aforementioned embodiments, the presentinvention is not limited to such embodiments. It will be obvious to oneof average skill in the art that various changes and modifications maybe practiced within the spirit and scope of the invention, as limitedonly by the scope of the appended claims.

What is claimed is:
 1. A method performed by an Internet search systemthat supports searching associated with a plurality of Internet webpages by a plurality of users via a plurality of user computing devices,the method comprising: receiving subjective indications of favorite websites from each of the plurality of users via the plurality of usercomputing devices, a first of the subjective indications being receivedfrom a first of the plurality of users, a second of the subjectiveindications being received from a second of the plurality of users;receiving objective indications of favorite web sites associated witheach of the plurality of users via the plurality of user computingdevices; storing both the subjective indications and objectiveindications within a favorites database structure; searching, based on afirst search request of a third of the plurality of users, to identifyfirst search results associated with a first portion of the plurality ofInternet web pages; and searching, based on a second search request of afourth of the plurality of users, to identify second search resultsassociated with a second portion of the plurality of Internet web pages,the second search request including a first favorites search parameterrelating to the subjective indications, the second search results beingconstructed at least in part using the first of the subjectiveindications; and searching, based on a third search request of a fifthof the plurality of users, to identify third search results associatedwith a third portion of the plurality of Internet web pages, the thirdsearch request including a second favorites search parameter, the thirdsearch results being constructed using both the second of the subjectiveindications and the objective indications associated with at least oneof the plurality of users.